package cn.devzyh.service;

import cn.devzyh.domain.Resource;
import cn.devzyh.domain.ResourceCategory;
import cn.devzyh.domain.Role;
import cn.devzyh.domain.RoleVo;

import java.util.List;

/**
 * 角色模块业务层
 */
public interface RoleService {

    /**
     * 根据条件查询角色列表
     *
     * @param role
     * @return
     */
    List<Role> findByCondition(Role role);

    /**
     * 新增角色信息
     *
     * @param role
     */
    void saveRole(Role role);

    /**
     * 修改角色信息
     *
     * @param role
     */
    void updateRole(Role role);

    /**
     * 根据角色查询对应菜单列表
     *
     * @param roleId
     * @return
     */
    Integer[] findMenuByRoleId(Integer roleId);

    /**
     * 为角色分配菜单列表
     *
     * @param roleId
     * @param menuIdList
     */
    void roleContextMenu(Integer roleId, Integer[] menuIdList);

    /**
     * 删除角色信息
     *
     * @param roleId
     */
    void deleteRole(Integer roleId);

    /**
     * 查询指定角色对应的资源列表
     *
     * @param roleId
     * @return
     */
    List<ResourceCategory> findResourceListByRoleId(Integer roleId);

    /**
     * 更新角色菜单关联数据
     *
     * @param roleVo
     */
    void roleContextResource(RoleVo roleVo);

}
